package com.company.java.basic.day04;

public class Day04_Test {
    public static void main(String[] args) {
        //打印扑克牌出去大小王
        /*
        //建立形状数组
        String[] shape = {"黑桃","红桃","梅花","方块"};
        //建立数字数组
        String[] number = {"A","2","3","4","5","6","7","8","9","10",
                "J","Q","K"};
        //进行嵌套循环，先循环形状，再循环数字，
        // 每一个形状打印完打印空格
        for (int i=0;i<shape.length;i++){
            for (int j=0;j<number.length;j++){
                System.out.print(shape[i]+number[j]+" ");
            }
            System.out.println();
        }

         */

        //统计字符
        /*
        // 建立字符数组
        char[] letter = {'a','l','f','m','f','o','b','b','s','n'};
        // 建立统计数组
        int[] count = new int[26];
        //双重遍历，第一次遍历元素，第二次遍历重复个数，记录个数的
        // 变量初始值为0，在第二次遍历时再进行迭代
        for(int i=0;i<letter.length;i++){
            int num = 0;
            for (int j=0;j<letter.length;j++){
                if (letter[i]==letter[j]){
                    num++;
                }
            }
            //将个数添加到统计数组中，a的数量存在索引为零的位置上，a=97依次类推，
            // 用ASCⅡ码来推算
            int index = (int)(letter[i])-97;
            count[index] = num;
            // 可以不用第二次循环，遍历到当前元素时，直接，count[index]++
            //更简便
        }
        for (int i=0;i<count.length;i++){
            //打印统计数组，同样也是用ASCⅡ码来推算打印的是哪一个字母的个数
            if (count[i]!=0){
                System.out.println((char)(i+97)+"-->"+count[i]);
            }
        }

         */

        //判断数组是否对称
        /*
        //遍历数组，从首尾两端开始，遍历判断是否相等，次数为length/2
        int[] arr = {1,2,3,2,1};
        boolean flag = true;
        for (int left=0,right=arr.length-1;left<right;left++,right--){
            if (arr[left]!=arr[right]){
                flag = false;
            }
        }
        if (flag){
            System.out.println("YES");
        }else System.out.println("NO");

         */

        //求成绩
        /*
        //建立各个答案数组
        char[] answer = {'A','D','B','C','D'};
        char[] student = {'D','C','B','A','D',
                'A','D','B','C','D',
                'A','D','B','C','A',
                'A','B','C','D','D'};
        //建立分数数组0，1，2，3
        int[] score = new int[4];
        //遍历标准答案组，判段是否相等，为索引为i/5的赋值
        for (int i = 0;i<student.length;i++){
            if (student[i]==answer[i%5]){
                score[i/5] +=2;
            }
        }
        //打印时也按索引来
        System.out.println("一号考生： "+score[0]);
        System.out.println("二号考生： "+score[1]);
        System.out.println("三号考生： "+score[2]);
        System.out.println("四号考生： "+score[3]);

         */

        //实现数组左奇右偶
        /*
        //left right交换，次数为left<right
        int[] arr={26,67,46,38,51,63,6,7,51,86};
        for (int left=0,right=arr.length-1;left<right;){
            if (arr[left]%2==0 && arr[right]%2==1){
                arr[left]=arr[left]+arr[right];
                arr[right]=arr[left]-arr[right];
                arr[left]=arr[left]-arr[right];
                left++;right--;
                continue;
            }else if (arr[left]%2==1 && arr[right]%2==1){
                left++;
                continue;
            }else if (arr[left]%2==0 && arr[right]%2==0) {
                right--;
                continue;
            }else left++;right--;
        }
        for (int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }

         */

        // 数组去重
        /*
        //建立数组
        int[] arr = {9,10,6,6,1,9,3,5,6,4,9};
        // 创建count=length
        int count = arr.length;
        //循环遍历数组，如果i==i+n，count--，并且需要把i+n覆盖掉
        for (int i=0;i<count;i++){
            for (int j=i+1;j<count;j++){
                if (arr[i]==arr[j]){
                    //如果时与最后一个元素相等，就将最后的值赋为0
                    if (j==count-1){
                        arr[j] =0;
                    }else {
                        //如果不是最后一个，就进行覆盖，从i+n开始把
                        // i+n+1赋给i+n完成覆盖,
                        // i+n等于到数第二个就好
                        for (int k=j;k<count-1;k++){
                            arr[k] = arr[k+1];
                        }
                    }
                    count--;
                }
            }
        }
        //建立新数组长度为count并把arr复制过来，i<count.length
        int[] newArr = new int[count];
        for (int i=0;i<count;i++){
            newArr[i] = arr[i];
            System.out.print(newArr[i]+" ");
        }

         */
    }
}
